package com.jomoo.css.common.core.vo;

import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * @author bo.wang
 * @date 2017/10/29
 */
@Data
@ApiModel(value = "前端用户展示对象")
public class SysUserVO extends BaseEntityVO {
	public SysUserVO() {

	}

	public SysUserVO(String userId,
                     String username,
                     String password,
                     String salt,
                     String phone,
                     String avatar,
                     String wxOpenid,
                     String qqOpenid,
                     String deptId,
                     String lockFlag,
                     String tenantId,
                     String staffNo,
                     String cname,
                     String ename,
                     String staffLevel,
                     String serviceGroup,
                     String serviceGroupDesc,
                     String deptName,
                     Date createDate) {
		this.userId = userId;
		this.username = username;
		this.password = password;
		this.salt = salt;
		this.phone = phone;
		this.avatar = avatar;
		this.wxOpenid = wxOpenid;
		this.qqOpenid = qqOpenid;
		this.deptId = deptId;
		this.lockFlag = lockFlag;
		this.tenantId = tenantId;
		this.staffNo = staffNo;
		this.cname = cname;
		this.ename = ename;
		this.staffLevel = staffLevel;
		this.serviceGroup = serviceGroup;
		this.serviceGroupDesc = serviceGroupDesc;
		this.deptName = deptName;
		this.createDate = createDate;
	}

	public SysUserVO(String userId,
                     String username,
                     String password,
                     String salt,
                     String phone,
                     String avatar,
                     String wxOpenid,
                     String qqOpenid,
                     String deptId,
                     String lockFlag,
                     String tenantId,
                     String staffNo,
                     String cname,
                     String ename,
                     String staffLevel,
                     String serviceGroup,
                     String serviceGroupDesc,
                     Date createDate,
                     Date modifiedDate,
                     String delFlag,
                     String roleId,
                     String roleName,
                     String roleCode,
                     String roleDesc) {
		this.userId = userId;
		this.username = username;
		this.password = password;
		this.salt = salt;
		this.phone = phone;
		this.avatar = avatar;
		this.wxOpenid = wxOpenid;
		this.qqOpenid = qqOpenid;
		this.deptId = deptId;
		this.lockFlag = lockFlag;
		this.tenantId = tenantId;
		this.staffNo = staffNo;
		this.cname = cname;
		this.ename = ename;
		this.staffLevel = staffLevel;
		this.serviceGroup = serviceGroup;
		this.serviceGroupDesc = serviceGroupDesc;
		this.createDate = createDate;
		this.modifiedDate = modifiedDate;
		this.delFlag = delFlag;
		this.roleId = roleId;
		this.roleName = roleName;
		this.roleCode = roleCode;
		this.roleDesc = roleDesc;
	}

	public SysUserVO(String userId,
                     String username,
                     String password,
                     String salt,
                     String phone,
                     String avatar,
                     String wxOpenid,
                     String qqOpenid,
                     String deptId,
                     String lockFlag,
                     String tenantId,
                     String staffNo,
                     String cname,
                     String ename,
                     String staffLevel,
                     String serviceGroup,
                     String serviceGroupDesc,
                     Date createDate,
                     Date modifiedDate,
                     String delFlag,
                     String roleId,
                     String roleName,
                     String roleCode,
                     String roleDesc,
                     String deptName) {
		this.userId = userId;
		this.username = username;
		this.password = password;
		this.salt = salt;
		this.phone = phone;
		this.avatar = avatar;
		this.wxOpenid = wxOpenid;
		this.qqOpenid = qqOpenid;
		this.deptId = deptId;
		this.lockFlag = lockFlag;
		this.tenantId = tenantId;
		this.staffNo = staffNo;
		this.cname = cname;
		this.ename = ename;
		this.staffLevel = staffLevel;
		this.serviceGroup = serviceGroup;
		this.serviceGroupDesc = serviceGroupDesc;
		this.createDate = createDate;
		this.modifiedDate = modifiedDate;
		this.delFlag = delFlag;
		this.roleId = roleId;
		this.roleName = roleName;
		this.roleCode = roleCode;
		this.roleDesc = roleDesc;
		this.deptId = deptId;
		this.deptName = deptName;
	}

	@Override
	public String getId() {
		return userId;
	}

	@Override
	public void setId(String id) {
		this.userId = id;
	}

	public String getUserName() {
		return this.username;
	}

	public void setUserName(String username) {
		this.username = username;
	}

	public String getUsername() {
		return this.username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	private String userId;
	/**
	 * 用户名
	 */
	@ApiModelProperty(value = "用户名")
	private String username;
	/**
	 * 密码
	 */
	@ApiModelProperty(value = "密码")
	private String password;
	/**
	 * 随机盐
	 */
	@JsonIgnore
	@ApiModelProperty(value = "随机盐")
	private String salt;
	/**
	 * 锁定标记
	 */
	@ApiModelProperty(value = "锁定标记")
	private String lockFlag;
	/**
	 * 手机号
	 */
	@ApiModelProperty(value = "手机号")
	private String phone;
	/**
	 * 头像
	 */
	@ApiModelProperty(value = "头像地址")
	private String avatar;
	/**
	 * 部门ID
	 */
	@ApiModelProperty(value = "用户所属部门id")
	private String deptId;
	/**
	 * 微信openid
	 */
	@ApiModelProperty(value = "微信openid")
	private String wxOpenid;
	/**
	 * QQ openid
	 */
	@ApiModelProperty(value = "QQ openid")
	private String qqOpenid;
	/**
	 * 码云唯一标识
	 */
	@ApiModelProperty(value = "码云唯一标识")
	private String giteeLogin;
	/**
	 * 开源中国唯一标识
	 */
	@ApiModelProperty(value = "开源中国唯一标识")
	private String oscId;

	@ApiModelProperty(value = "中文名")
	private String cname;

	@ApiModelProperty(value = "英文名")
	private String ename;

	@ApiModelProperty(value = "区域")
	private String area;

	@ApiModelProperty(value = "分所")
	private String department;

	@ApiModelProperty(value = "服务组")
	private String psgroup;

	@ApiModelProperty(value = "邮箱")
	private String email;

	@ApiModelProperty(value = "是否启用")
	private Boolean enabled;

	@ApiModelProperty(value = "员工级别")
	private String staffLevel;

	@ApiModelProperty(value = "原级别")
	private String historyStaffLevel;

	@ApiModelProperty(value = "员工号")
	private String staffNo;

	@ApiModelProperty(value = "服务组")
	private String serviceGroup;

	@ApiModelProperty(value = "服务组描述")
	private String serviceGroupDesc;

	@ApiModelProperty(value = "默认语言")
	private String lang;

	@ApiModelProperty(value = "银行卡号")
	private String bankCard;

	@ApiModelProperty(value = "银行账户名")
	private String accountName;

	@ApiModelProperty(value = "是否关注公众号")
	private Boolean isWatch;

	/**************自定义字段 begin*******************/
	@ApiModelProperty(value = "部门名称")
	private String deptName;
	/**
	 * 角色列表
	 */
	@ApiModelProperty(value = "拥有的角色列表")
	private List<SysRoleVO> roleList;

	@ApiModelProperty(value = "角色id")
	private String roleId;

	@ApiModelProperty(value = "角色名称")
	private String roleName;

	@ApiModelProperty(value = "角色代码")
	private String roleCode;

	@ApiModelProperty(value = "角色描述")
	private String roleDesc;
	/**************自定义字段 end*******************/

}
